Fix compiler bug with rank 2 types in mapAccuml #2342
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a compiler bug that occurred when using
mapAccuml
with explicit type annotations. The bug manifested as a compiler crash with the message:The issue was that the compiler was incorrectly rejecting rank-2 type variables during generalization. These variables are in fact valid and required for higher-order functions like
mapAccuml
.The fix updates the
isGeneric
function to explicitly allow rank-2 variables, enabling proper type inference formapAccuml
and similar functions.Example of a test case that previously crashed but now works correctly: